猴子请来的救兵 2018-01-17 21:00:32

仓库

公共仓库

目前Docker官方维护了一个公共的仓库『 https://hub.docker.com 』,其中已经包括 15000 个多镜像了。大部分需求都可以通过 Docker Hub 中直接下载镜像来实现。一般使用『docker search』都是从公共仓库『 https://hub.docker.com 』上进行搜索的。搜索到的镜像,使用『docker pull』可以进行下载

私有仓库

安装『docker』以后,可以使用『registry』镜像创建私有仓库。

docker pull registry

启动仓库镜像,监听端口为5000,将文件目录映射到指定的路径下。

docker run -d -p 5000:5000 -v ~/Documents/Docker/registry:/var/lib/registry

下列是上传私有仓库的完整示例

# 将本地做好的镜像备份,打上tag
docker tag test 127.0.0.1:5000/test

# 查看镜像
docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
127.0.0.1:5000/test   latest              85a61908f834        9 hours ago         204MB
test                  latest              85a61908f834        9 hours ago         204MB
registry              latest              d1fd7d86a825        4 days ago          33.3MB
mysql                 latest              7d83a47ab2d2        4 weeks ago         408MB
centos                latest              3fa822599e10        6 weeks ago         204MB

# 将镜像上传至本地私有仓库
docker push 127.0.0.1:5000/test

从私有云上下载

docker pull 127.0.0.1:5000/test

其他机器从私有云上下载,比如老版本的docker,使用『pull』后,会报如下错

# Docker version 1.12.6, build 0fdc778/1.12.6

docker pull 192.168.0.103:5000/test

Using default tag: latest
Trying to pull repository 192.168.0.103:5000/test ... 
Get https://192.168.0.103:5000/v1/_ping: http: server gave HTTP response to HTTPS client

需要修改『/etc/docker/daemin.json』文件,写入私有云的地址

{ "insecure-registries":["192.168.0.103:5000"] }

在进行下载,OK 下载成功。

docker pull 192.168.0.103:5000/test

Using default tag: latest
Trying to pull repository 192.168.0.103:5000/test ... 
latest: Pulling from 192.168.0.103:5000/test
85432449fd0f: Pull complete 
a755dfc089ae: Pull complete 
Digest: sha256:e136b456003d32250180b8bef43b1b8a6652b9f67b136362a33aee1fd18bafc0

查看私有仓库中的镜像

curl -XGET http://192.168.0.103:5000/v2/_catalog
curl -XGET http://192.168.0.103:5000/v2/image_name/tags/list